﻿var GSSintLeft = 0;
var GSSintBottom = 0;
var GSSintRight = 0;
var GSSintTop = 0;
var GSStopOffset = 0;
var GSSstrIsHasInputFile='';
var GSSstrPUB_FILE_FORDER_PATH;		//共用JS,VBS等Client端檔案的Forder路徑
var GSSwinOpened;	//被開啟的小視窗（使用window.open）

var GSSstrScript='';
var GSSsrcObj;
var GSSiniVal='';
function GSSfocusWinOpened() {
	var strType=event.type;
	if (typeof(GSSwinOpened)=='object') {
		try {
			switch (strType) {
				case 'click':             //點到父視窗時,把WindowB先叫起來
					GSSwinOpened.focus();
					break;
				case 'beforeunload':    //關掉父視窗前,先把WindowB關掉
					GSSwinOpened.close();
					document.body.detachEvent('onclick',GSSfocusWinOpened);
					GSSwinOpened=null;
					break;
			}
		}
		catch(err){
			GSSwinOpened=null;
			document.body.detachEvent('onclick',GSSfocusWinOpened);
//			if((GSSstrScript!='')&&(GSSiniVal!=GSSsrcObj.value)){
//				window.execScript(GSSstrScript);
//			}
//			GSSsrcObj=null;
//			GSSiniVal='';
		}
	}
}

function GSSgetObjPos(vVntObj){
//目的: 取得物件相對於BODY的位置

    if(typeof(vVntObj)!='object')   return false;
    var posLeft = vVntObj.style.pixelLeft;
    var posTop = vVntObj.style.pixelTop;
    var objParent = vVntObj;
    while (objParent.tagName != 'BODY')	{
        //alert(posLeft + ' - ' + objParent.offsetLeft + ' - ' +  objParent.style.pixelLeft);
        posLeft += objParent.offsetLeft //+ objParent.style.pixelLeft;
        posTop += objParent.offsetTop //+ objParent.style.pixelTop;
        objParent = objParent.offsetParent;}
    GSSintLeft = posLeft;
    GSSintBottom = posTop + vVntObj.clientHeight;
    GSSintRight = posLeft + vVntObj.offsetWidth;
    GSSintTop = posTop;
}

//<!--******************************************************************************************-->
//函數名稱：GSSgetParentElementByTag
//目    的：根據TagName取得Parent Elememt物件
//參數說明：vVntObj - 物件
//			vstrTag - Tag Name
//回傳值：Parent Elememt
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSgetParentElementByTag(vVntObj,vstrTag) {
	return GSSGetParentElementByTag(vVntObj,vstrTag);
}

function GSSGetParentElementByTag(vVntObj,vstrTag) {
	var obj;
	if(typeof(vVntObj)!='object') return false;
	obj = vVntObj;
	try{
		while (obj.tagName.toUpperCase()!=vstrTag.toUpperCase()) {
			obj=obj.parentElement;
			if(typeof(obj)!='object') return;
		}
		return obj
	}
	catch(e){}
}

function GSSgetCaptionObj(vvntObj){
	var objDocument=GSSGetDocument();
	var objParent=vvntObj.parentElement;
	var intSrcIndex=objParent.sourceIndex;
	var objLabCap=objDocument.all[intSrcIndex-1];

	if((objLabCap.tagName=='LABEL')&&(objLabCap.className=='GSSclsCaptionLab')){
		return objLabCap;
	}
	else{
		var objTD=GSSGetParentElementByTag(vvntObj,'TD');
		var objTR=GSSGetParentElementByTag(objTD,'TR');
		if(objTD.cellIndex>0){
			if(objTR.childNodes[objTD.cellIndex-1].getElementsByTagName('LABEL').length>0){
				var objLabCap=objTR.childNodes[objTD.cellIndex-1].getElementsByTagName('LABEL')[0];
				var strSrh=objLabCap.id.substr(0,objLabCap.id.length-1);
				if(objLabCap.className=='GSSclsCaptionLab'){
					if(strSrh.indexOf(GSSgetAttribute(vvntObj,'ITEM_ID'))>-1){
						return objLabCap;
					}	//判斷是否設定ITEM_ID屬性

                			}	//判斷是否className為GSSclsCaptionLab
                		}	//判斷是否有包含LABEL物件
                	}	//判斷是否並非TD中的第一個cell
	}
}

//<!--******************************************************************************************-->
//函數名稱：GSSgetDocument
//目    的：取得document,因為由IFRAME中設定parent視窗物件時必須加上parent.
//			透過此函數取得document物件
//			避免在IFRAME中使用Parent視窗的物件發生錯誤（IFRAME與PARENT視窗必須於相同虛擬站台）
//參數說明：vVntObj - 物件名稱(多個物件時使用,作為分隔字元
//			格式:obj Name1,obj Name2...)
//回傳值：屬性值
//範例：var objDocument=GSSgetDocument();
//		objDocument.all['XXX'].value='';
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSgetDocument(){
	return GSSGetDocument();
}

function GSSGetDocument(){
    var colIFrame=parent.document.getElementsByTagName('IFRAME');
    if(colIFrame.length==0){
        var objDocument=document;}
    else{
        var objDocument=colIFrame[0].document;}
    return objDocument;
}

//<!--******************************************************************************************-->
//函數名稱：GSSClearObj
//目    的：清除物件的值或者選擇的項目
//參數說明：vVntObj - 物件名稱(多個物件時使用,作為分隔字元
//			格式:obj Name1,obj Name2...)
//回傳值：屬性值
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSClearObj(vVntObj) {
    if(typeof(vVntObj)=='object'){
        var obj=vVntObj;
        if(obj.tagName=='SELECT'){
            obj.selectedIndex=-1;}
        else{
            obj.value='';}
    }
    else{
        if(typeof(vVntObj)=='string'){
            var objDocument=GSSGetDocument();
            var arrTmp=vVntObj.split(',');
            for(var i=0;i<arrTmp.length;i++){
                if(arrTmp[i]!='') var obj=objDocument.all[arrTmp[i]];
                if(typeof(obj)=='object'){
			if(obj.tagName=='SELECT'){
				obj.selectedIndex=-1;}
			else{
				obj.value = '';
				switch (obj.type) {
					case 'radio':
					case 'checkbox':				//chk只有一個選項
						obj.checked = false;
						break;
					default:
						if(!isNaN(obj.length)){		//chk有多個選項
							for(var j=0;j<obj.length;j++){
								obj[j].checked=false;}
						}
				}
			}
                }
            }
        }
        else{
            return false;}
    }
}

//<!--******************************************************************************************-->
//函數名稱：GSSClearFormExceptObj
//目    的：清除Form中所有的物件值,除了某些物件以外
//參數說明：vVntObj - 不清除值的物件名稱(obj Name1,obj Name2...)
//回傳值：屬性值
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSClearFormExceptObj(vVntObj) {
	var objDocument=GSSGetDocument();
    var objForm=GSSGetEditForm();
    if(!vVntObj){
        vVntObj='';}
    else{
        vVntObj=',' + vVntObj + ',';}
    var objCol=objForm.all.tags('INPUT');
    for(var i=0;i<objCol.length;i++){
        if((objCol[i].type.toLowerCase()=='checkbox')||(objCol[i].type.toLowerCase=='radio')){
            if((vVntObj.indexOf(objCol[i].name+',')==-1)||(objCol[i].name.length==0)){
            objCol[i].checked=false;}
        }
        else{
            if((objCol[i].name.substr(0,3)!='GSS')&&(vVntObj.indexOf(','+objCol[i].name+',')==-1)){
                var vntDefault=GSSgetAttribute(objCol[i],'DB_DEFAULT');
                objCol[i].value=vntDefault;
            }
        }
    }
    var arrTagName=Array('SELECT','TEXTAREA');
    for(var j=0;j<arrTagName.length;j++){
	    objCol=objForm.all.tags(arrTagName[j]);
	    for(var i=0;i<objCol.length;i++){
	        if(vVntObj.indexOf(objCol[i].name+',')==-1){
	        	if(arrTagName[j]=='SELECT'){
	            	objCol[i].selectedIndex=-1;}
	            else{
	        		objCol[i].value='';}
	        }
	    }
	}
	objDocument.body.scrollTop=0;
}

//<!--******************************************************************************************-->
//函數名稱：GSSSetGSSFunBtnBar
//目        的：設定Screen上FunBtnBar物件的狀態
//			新增或複製初始狀態或者點選新增下一筆時：會將新增下一筆按鈕DISABLE，儲存按鈕ENABLE
//			按儲存執行新增或複製成功時：會將新增下一筆按鈕ENABLE，儲存按鈕DISABLE
//參數說明：vstrIS_SAVE：Y - 開始儲存（處理）資料，N - 完成儲存（處理）資料
//			vstrIS_SUCESS：Y - 儲存（處理）資料成功，N - 儲存（處理）資料失敗【選擇性參數】
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSsetGSSFunBtnBar(vstrIS_SAVE,vstrIS_SUCESS){
	return GSSSetGSSFunBtnBar(vstrIS_SAVE,vstrIS_SUCESS)
}

function GSSSetGSSFunBtnBar(vstrIS_SAVE,vstrIS_SUCESS){
    var strType='';
    if(event!=null){
         event.cancelBubble=true;
        strType=event.type;}
    var strIS_POSTBACK='N';
    var objDocument=GSSGetDocument();
    var colBtnBar=objDocument.getElementsByTagName('TABLE');

    var objActFlag=objDocument.all['GSStxtActFlag'];
    if(typeof(objActFlag)!='object') return false;
    var objForm=GSSGetParentElementByTag(objActFlag,'FORM');
    if(typeof(objForm)!='object') return false;
    var strActFlag=objActFlag.value;
    var objIS_POSTBACK=objDocument.all['GSStxtIS_POSTBACK'];

	if(strActFlag=='NEW'){
		strIS_POSTBACK='N';
		if(typeof(objIS_POSTBACK)=='object') objIS_POSTBACK.value=strIS_POSTBACK;
		strActFlag='ADD';
		objActFlag.value=strActFlag;
	}
	else{
	    if(typeof(objIS_POSTBACK)=='object'){
       strIS_POSTBACK=objIS_POSTBACK.value;
       if(strIS_POSTBACK=='') strIS_POSTBACK='N';}
	}
	if((strActFlag!='ADD')&&(strActFlag!='UPT')&&(strActFlag!='DEL')){
		return new Array(objDocument.all,objForm);
	}
    //控制儲存刪除新增下一筆等按鈕
    for (var i=0; i<colBtnBar.length; i++){
    	if(GSSgetAttribute(colBtnBar[i],'GSSTypeName')=='GSSFunBtnBar'){
	        var colCtlObj=colBtnBar[i].getElementsByTagName('BUTTON');
	        for (var j = 0; j< colCtlObj.length; j++){
	            if(colCtlObj[j].getAttribute('ITEM_ID')=='CTL_BTN_SAVE') var objBtnSave=colCtlObj[j];
	            if(colCtlObj[j].getAttribute('ITEM_ID')=='CTL_BTN_NEW') var objBtnNew=colCtlObj[j];
	            if(colCtlObj[j].getAttribute('ITEM_ID')=='CTL_BTN_DELETE') var objBtnDel=colCtlObj[j];
	            if(colCtlObj[j].getAttribute('ITEM_ID')=='CTL_BTN_CPY') var objBtnCopy=colCtlObj[j];
	            if(colCtlObj[j].getAttribute('ITEM_ID')=='CTL_BTN_SAVEAS') var objBtnSaveAs=colCtlObj[j];
	        }
	        if(strType=='load'){
	            if(strActFlag=='UPT'){
	                    if(typeof(objBtnSave)=='object') objBtnSave.disabled=false;
	                    if(typeof(objBtnNew)=='object') objBtnDel.disabled=false;
	                    if(typeof(objBtnSaveAs)=='object') objBtnSaveAs.disabled=false;
	                    if(typeof(objBtnDel)=='object') objBtnNew.style.display='none';}
				else{
	            	if(strIS_POSTBACK=='N'){    //新增或複製

	                    if(typeof(objBtnSave)=='object') objBtnSave.disabled=false;
	                    if(typeof(objBtnNew)=='object') objBtnNew.disabled=true;
	                    if(typeof(objBtnDel)=='object') objBtnDel.style.display='none';
	                    if(typeof(objBtnSaveAs)=='object') objBtnSaveAs.disabled=true;
					}
					else{
						//由下一頁回到此功能，新增或複製成功
	                    if(typeof(objBtnSave)=='object') objBtnSave.disabled=true;
	                    if(typeof(objBtnNew)=='object') objBtnNew.disabled=false;
	                    if(typeof(objBtnDel)=='object') objBtnDel.style.display='none';
	                    if(typeof(objBtnSaveAs)=='object') objBtnSaveAs.disabled=false;
					}
				}
	        }
	        else{
	            if(vstrIS_SAVE=='Y'){   //儲存完成後

	                    if(typeof(objBtnSave)=='object') objBtnSave.disabled=true;
	                    if(typeof(objBtnNew)=='object') objBtnNew.disabled=true;}
	            else{
	                    if((vstrIS_SUCESS=='Y')&&(strActFlag=='ADD')&&(typeof(objBtnNew)=='object')){   //新增成功
	                        if(typeof(objBtnSave)=='object') objBtnSave.disabled=true;
	                        if(typeof(objBtnSaveAs)=='object') objBtnSaveAs.disabled=false;
	                        if(typeof(objBtnNew)=='object') objBtnNew.disabled=false;
						}
	                    else{
	                            if(typeof(objBtnSave)=='object') objBtnSave.disabled=false;
	                            if(typeof(objBtnNew)=='object') objBtnNew.disabled=true;
	                            if(typeof(objBtnSaveAs)=='object') objBtnSaveAs.disabled=true;
	                    }
	            }
	        }
		}
    }
    var colRtn = new Array(objDocument.all,objForm,strActFlag,strIS_POSTBACK);
    return colRtn;
}

//<!--******************************************************************************************-->
//函數名稱：GSSSetObjStatus
//目        的：設定Screen上所有物件的狀態
//參數說明：vstrIS_SAVE：Y - 開始儲存（處理）資料，N - 完成儲存（處理）資料
//			vstrIS_SUCESS：Y - 儲存（處理）資料成功，N - 儲存（處理）資料失敗
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSsetObjStatus(vstrIS_SAVE,vstrIS_SUCESS){
	GSSSetObjStatus(vstrIS_SAVE,vstrIS_SUCESS);
}

function GSSSetObjStatus(vstrIS_SAVE,vstrIS_SUCESS){
	var colCtlObj;
	var colEditObjectType = new Array('SELECT','TEXTAREA','INPUT','A','IMG','BUTTON');
	var objDocument=GSSGetDocument();
	var colRtn=GSSSetGSSFunBtnBar(vstrIS_SAVE,vstrIS_SUCESS);
	if(typeof(objDocument.all['GSSdivLoadMsg'])=='object'){
		if(vstrIS_SAVE=='Y'){
			objDocument.all['GSSdivPage'].style.display='none';
			objDocument.all['GSSdivLoadMsg'].style.display='';}
		else{
			objDocument.all['GSSdivPage'].style.display='';
			objDocument.all['GSSdivLoadMsg'].style.display='none';}
	}
	else{
		var objCol=colRtn[0];
		var objForm=colRtn[1];
		var strActFlag=colRtn[2];
		if(vstrIS_SAVE=='Y'){
			blnStatus=true;}
		else{
			blnStatus=false;}
		for (var i=0; i<colEditObjectType.length; i++){
			//處理Screen上所有Input物件
			colCtlObj=objCol.tags(colEditObjectType[i]);
			intLen=colCtlObj.length;
			for (var j = 0; j< intLen; j++){
				obj = colCtlObj[j];
				if((vstrIS_SAVE=='Y')&&(obj.disabled)){
				//預設狀態為disable的物件設定__DISABLE屬性為Y
					obj.setAttribute('__DISABLE','Y');}
				else{
					if((vstrIS_SAVE=='N')&&(obj.getAttribute('__DISABLE')=='Y')){
						obj.removeAttribute('__DISABLE');}
					else{
						obj.disabled=blnStatus;}
				}
			}
		}
	}
	try{
		if(window.name.toLowerCase()=='iframeexec')	location.replace('about:blank');
	}
	catch(e){}
	//if((strActFlag!='ADD')&&(strActFlag!='UPT')&&(strActFlag!='DEL')) return false;
}

function GSSM_BTNDAR_EDIT_load(){
    var objCol;
    event.cancelBubble=true;
    var colRtn=GSSSetGSSFunBtnBar('N');
    var objForm=colRtn[1];
    var strActFlag=colRtn[2];
    var strIS_POSTBACK=colRtn[3];
    var strType=event.type;

    if(((strActFlag=='ADD')&&(strIS_POSTBACK=='N')) || (strType=='click') ){//新增時將欄位資料清空
        objCol=objForm.all.tags('INPUT');
//        objCol=GSSgetElementsByAttr(objForm,'INPUT','TEXT','readOnly',false)
        for(var i=0;i<objCol.length;i++){
                if((!objCol[i].disabled)&&(!objCol[i].readOnly)&&(objCol[i].type!='hidden')&&(objCol[i].style.display!='none')){
                        objCol[i].focus();
                        break;}
        }
    }
}

//<!--******************************************************************************************-->
//函數名稱：GSSgetAttribute
//目    的：設定物件的某個屬性的屬性值
//參數說明：vObj - 物件
//			vstrTagName - TagName
//			vstrAttrName - 屬性名稱
//回傳值：屬性值
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSgetAttribute(vObj,vstrAttrName){
    var vntAttrVal=vObj.getAttribute(vstrAttrName);
    if((!vntAttrVal)||(vntAttrVal==null)) vntAttrVal='';
    return vntAttrVal;
}

//<!--******************************************************************************************-->
//函數名稱：GSSgetElementsByAttr
//目    的：取得TagName為vstrTagName，且其vstrAttrName屬性值為vstrAttrVal
//參數說明：vobjContainer - 物件
//			vstrTagName - TagName
//			vstrType - INPUT物件的type屬性
//			vstrAttrName - 屬性名稱
//			vstrAttrVal - 屬性值
//回傳值：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSgetElementsByAttr(vobjContainer,vstrTagName,vstrType,vstrAttrName,vstrAttrVal){
    var arrTmp;
    var vntRtn='';
    var vntCol='';
    var arrTagName=vstrTagName.split('\\,');
    var blnConcat=false;

    if(!vstrType){
    	var strType='';}
    else{
    	var strType=vstrType;}

    if(!vstrAttrName){
    	var strAttrName='';}
    else{
    	var strAttrName=vstrAttrName;}

    if(!vstrAttrVal){
    	var strAttrVal='';}
    else{
    	var strAttrVal=vstrAttrVal;}

    for(var i=0;i<arrTagName.length;i++){
	    try{
	    	vntCol=vobjContainer.all.tags(arrTagName[i]);}
	    catch(e){
	    	vntCol=vobjContainer.getElementsByTagName(arrTagName[i]);}

    	for(var j=0;j<vntCol.length;j++){
    		arrTmp=new Array(vntCol[j]);
			if((strAttrName!='')&&(GSSgetAttribute(vntCol[j],strAttrName)==strAttrVal)){
				if((strType=='')||((strType!='')&&(GSSgetAttribute(vntCol[j],'TYPE')==strType))){
					blnConcat=true;}
			}

			if(!blnConcat){
				if(strAttrName==''){
					if((strType=='')||((strType!='')&&(GSSgetAttribute(vntCol[j],'TYPE')==strType))){
						blnConcat=true;}
				}
			}

    		if(blnConcat){
        		if(vntRtn==''){
            		vntRtn=arrTmp;}
        		else{
            		vntRtn=vntRtn.concat(arrTmp);}
        	}
        	blnConcat=false;
        }
    }

    return vntRtn;
}

//<!--******************************************************************************************-->
//函數名稱：GSSsetColAttr
//目    的：設定集合物件中某個屬性的屬性值
//參數說明：vobjCol - 集合物件陣列
//			vstrAttrName - 屬性名稱
//			vstrAttrVal - 屬性值
//回傳值：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSsetColAttr(vobjCol,vstrAttrName,vstrAttrVal){
    for(var i=0;i<vobjCol.length;i++){
        vobjCol[i].setAttribute(vstrAttrName,vstrAttrVal);
    }
}

//<!--******************************************************************************************-->
//函數名稱：GSScreateInputElm
//目    的：Create於Form中Create一個Input物件
//參數說明：vobjDocument - page的document物件
//			vobjForm - Form物件
//			vstrName - 欲Create物件名稱
//			vtrType - 欲Create物件Type屬性
//			vstrStyle - 欲Create物件Style屬性
//			vstrVal- 欲Create物件Value屬性
//回傳值：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSScreateInputElm(vobjDocument,vobjForm,vstrName,vtrType,vstrStyle,vstrVal){
	var objElement=vobjForm.all[vstrName];
	if(typeof(objElement)!='object'){
		var objElement=vobjDocument.createElement('INPUT');
		objElement.setAttribute('name',vstrName);
		objElement.setAttribute('id',vstrName);
		objElement.setAttribute('type',vtrType);
		objElement.setAttribute('style',vstrStyle);
		objElement.style.display='none';
		objElement.value=vstrVal;
		vobjForm.appendChild(objElement);}
	else{
		objElement.value=vstrVal;
	}
	return objElement;
}

//<!--******************************************************************************************-->
//函數名稱：GSSSubmitPage
//目        的：透過Form Submit的方式鏈結至另一個Page
//參數說明：vstrFormName：欲 Submit的Form名稱或Form物件【未傳遞此參數時預設取得觸發事件的物件所在的Form】
//			vstrActPath：鏈結的路徑【未傳遞此參數時預設取得GSS_URL屬性】
//			vstrTarget：Sets or retrieves the window or frame at which to target content【預設_self】
//			vstrIS_RELOAD: 是否為重新整理網頁(Y|N(default))
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSSubmitPage(vstrFormName,vstrActPath,vstrActFlag,vstrTarget,vstrIS_RELOAD,vstrIS_BACK){
	var objDocument=GSSGetDocument();
	var objForm=GSSGetEditForm(vstrFormName);
	var strIS_RELOAD='N';
	var strIS_BACK='N';  		//是否回到上一層功能

	var strIsShowMsg='N';

	if(typeof(event)=='object'){
		var objSrc=event.srcElement;
		var strOpenType=GSSgetAttribute(objSrc,'GSS_OPENTYPE');
		if(strOpenType==2){
			return GSSshowModalDialog(objSrc);
		}
		var strITEM_ID=GSSgetAttribute(objSrc,'ITEM_ID');
		if((!vstrActFlag)||(vstrActFlag=='')) vstrActFlag=GSSgetAttribute(objSrc,'GSS_FLAG');
		if((!vstrTarget)||(vstrTarget=='')) vstrTarget=GSSgetAttribute(objSrc,'GSS_TARGET');
		if((!vstrActPath)||(vstrActPath=='')) vstrActPath=GSSgetAttribute(objSrc,'GSS_URL');
		if((!vstrIS_BACK)||(vstrIS_BACK=='')) strIS_BACK=GSSgetAttribute(objSrc,'GSS_IS_BACK');

		strIsShowMsg=GSSgetAttribute(objSrc,'GSS_IS_SHOW_MSG');
		//        if(vstrActPath=='') return false;
	}
	else{
		var strITEM_ID='';
		if((!vstrActFlag)||(vstrActFlag=='')) return false;
		if((!vstrActPath)||(vstrActPath=='')) return false;
	}

	//取得Disable的radio,checkbox,select，並設定回Enable
	var colRadio=GSSgetElementsByAttr(objForm,'INPUT','radio','disabled',true);
	GSSsetColAttr(colRadio,'disabled',false);
	var colCheckBox=GSSgetElementsByAttr(objForm,'INPUT','checkbox','disabled',true);
	GSSsetColAttr(colCheckBox,'disabled',false);
	var colSelect=GSSgetElementsByAttr(objForm,'SELECT','','disabled',true);
	GSSsetColAttr(colSelect,'disabled',false);
	if((!vstrTarget)||(vstrTarget=='')) vstrTarget='_self';
	//	檢查是否有資料未輸入
	if (((strITEM_ID=='CTL_BTN_SAVE')||(strITEM_ID=='CTL_BTN_QUERY')||(strITEM_ID=='CTL_BTN_SURE'))||(GSSgetAttribute(objSrc,'GSS_CHK')=='Y'))
	{
	    	var strChkObj=GSSgetAttribute(objSrc,'GSS_CHK_OBJ');
	    	if(strChkObj==''){
        			if(!GSSvalidateNotEmpty(objForm)) return false;}
		else{
			if(!GSSvalidateNotEmpty(strChkObj)) return false;}
	}

	//詢問使用者是否執行此功能
	if((vstrActFlag=='DEL')||(strIsShowMsg=='Y')){
		if(!GSSMsgDesc(30000)) return false;}

	var objActFlag=objForm['GSStxtActFlag'];
	if((typeof(objActFlag)=='object')&&(vstrActFlag.length>0)){
		var strIniActFlag=objActFlag.value;
		objActFlag.value=vstrActFlag;}

	var objFunDeep=objForm['GSStxtFunDeep'];
	if(typeof(objFunDeep)=='object'){
		if(objFunDeep.value==''){
			objFunDeep.value=0;
			var intDeep=0;}
		else{
			var intDeep=parseInt(objFunDeep.value);
		}

		if((vstrActFlag=='BACK')||(strIS_BACK=='Y')){
	//		回上一頁需要將DEEP減1
			objFunDeep.value=intDeep-1}
		else{
			if(vstrTarget!='IFrameExec'){
	//		如果不是於隱藏的IFrame視窗中執行時
				if(document.URL.indexOf(vstrActPath)<0){
	//				如果不是於隱藏的IFrame視窗中執行且執行的路徑「並非」目前執行的PAGE時，
	//				表示要執行下一層功能，因此將DEEP值加1
					objFunDeep.value=intDeep+1;
				}
				else{
	//				如果不是於隱藏的IFrame視窗中執行且執行的路徑「是」目前執行的PAGE時，
	//				並且如果有設定「GSS_IS_RELOAD」屬性值為「Y」的話，表示重新整理該PAGE
	//				不處理DEEP值
					if(!vstrIS_RELOAD){
						strIS_RELOAD=GSSgetAttribute(objSrc,'GSS_IS_RELOAD');}
					else{
						strIS_RELOAD=vstrIS_RELOAD;}
					if(strIS_RELOAD=='N') objFunDeep.value=intDeep+1;
					GSScreateInputElm(objDocument,objForm,'GSSIS_RELOAD','HIDDEN','display:none;',strIS_RELOAD);
					if(typeof(GSSresetPageShow)=='function') GSSresetPageShow();
				}
			}
		}
	}
	objForm.target=vstrTarget;
	//點選儲存或刪除按鈕表示要將資料儲存回DB，當該頁含有檔案物件必須將FORM的encoding更改為multipart/form-data
	if(((strITEM_ID=='CTL_BTN_SAVE')||(strITEM_ID=='CTL_BTN_DELETE'))&&(GSSIsHasInputFile(objForm)=='Y')){
		objForm.encoding='multipart/form-data';}

	if(vstrActFlag!='BACK'){
		if ((typeof(vstrActPath)=='string') && (vstrActPath.length>0) ) objForm.action=vstrActPath;
		//        重新整理畫面
		if(strIS_RELOAD=='Y'){
			GSScreateInputElm(objDocument,objForm,'GSSStopRec','HIDDEN','display:none;','Y');
			objForm.method='POST';
			objForm.submit();
		}
		else{
			var btnSubmit=GSScreateInputElm(objDocument,objForm,'GSSbtnSubmit','submit','display:none;','');
			btnSubmit.click();
		}
	}
	else{
    		//回上一頁

		vstrActPath=vstrActPath + '?GSSStopRec=Y';
		if(typeof(objFunDeep)=='object'){
			vstrActPath=vstrActPath + '&GSStxtFunDeep=' + objFunDeep.value.toString();}
		location.replace(vstrActPath);
	}


	//將之前Enable的radio,checkbox,select改回Disable
	GSSsetColAttr(colRadio,'disabled',true);
	GSSsetColAttr(colCheckBox,'disabled',true);
	GSSsetColAttr(colSelect,'disabled',true);
	GSSSetObjStatus('Y');
	if(typeof(objFunDeep)=='object') objFunDeep.value=intDeep;
	objForm.encoding='application/x-www-form-urlencoded';
	if(typeof(strIniActFlag)=='string'){
		objActFlag.value = strIniActFlag;}
}
function GSSshowModalDialog(vobjSrc){
	var strRtn='';
//	if (!vstrURL){
		var strURL=GSSgetAttribute(vobjSrc,'GSS_URL');
		if(strURL=='') strURL=GSSgetAttribute(vobjSrc,'__URL');
		if(strURL=='') return false;
//	}
//	if (!vstrWinName){
		var strWinName=GSSgetAttribute(vobjSrc,'GSS_WINNAME');
		if(strWinName=='') strWinName='__SearchWin';
//	}
//	else{
//		GSS_WINNAME=vstrWinName;
//	}
//	if (!vstrWinFeatures){
		var strWinfeatures=GSSgetAttribute(vobjSrc,'GSS_WINFEATURES');
		if(strWinfeatures==''){
			strWinfeatures='dialogWidth=300pt;dialogHeight=250pt;resizable=1;help=1;center=1';
		}
//	}
//	else{
//		GSS_WINFEATURES=vstrWinFeatures;
//	}
	strRtn=window.showModalDialog(strURL,strWinName,strWinfeatures);
	if(typeof(strRtn)=='string'){
		return strRtn;
	}
}
function GSSIsHasInputFile(vobjForm){
    if(GSSstrIsHasInputFile!='') return GSSstrIsHasInputFile;
    var colInputs=vobjForm.getElementsByTagName('INPUT');
    for(var i=0;i<colInputs.length;i++){
        if(colInputs[i].type=='file'){
            GSSstrIsHasInputFile='Y';
            return GSSstrIsHasInputFile;}
    }
    GSSstrIsHasInputFile='N';
}

//<!--******************************************************************************************-->
//函數名稱：GSSShowCtl
//目        的：顯示或隱藏Control物件【包含Control標題、主體、註解】

//參數說明：vntObj：Y - 欲顯示或隱藏Control主體物件的ID字串，或物件本身
//			vstrDisplay：空字串表示顯示，none表示隱藏
//版本變更：

//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSshowCtl(vntObj,vstrDisplay){
	GSSShowCtl(vntObj,vstrDisplay);
}

function GSSShowCtl(vntObj,vstrDisplay){
	var objDocument=GSSGetDocument();
	if(typeof(vntObj)=='undefined') return false;
	if(typeof(vntObj)=='string'){
		var objCtl=objDocument.all[vntObj];
		if(!objCtl.tagName) objCtl=objDocument.all[vntObj][0];
	}
	else{
		var objCtl=vntObj;
	}

	var objParent=objCtl.parentElement;
	if(objParent.tagName=='SPAN'){
		var colChildNodes=objParent.children;
		for(var i=0;i<colChildNodes.length;i++){
			colChildNodes[i].style.display=vstrDisplay;
		}
	}
	else{
		objCtl.style.display=vstrDisplay;
	}

	var intSrcIndex=objParent.sourceIndex;
	var objLabCap=GSSgetCaptionObj(objCtl);

	if(typeof(objLabCap)=='object'){
		objLabCap.style.display=vstrDisplay;
	}
}

//<!--******************************************************************************************-->
//函數名稱：GSSgetEditForm
//目    的：取得物件所在的Form
//參數說明：vntObj - 物件(未傳遞時預設為觸發事件的物件)
//回傳值：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSgetEditForm(vntObj){
	return GSSGetEditForm(vntObj);
}

function GSSGetEditForm(vntObj){
	if(vntObj!=null){
		if(vntObj.tagName=='FORM'){
		return vntObj;}
	else{
		return GSSGetParentElementByTag(vntObj,'FORM');}
	}
	var objDocument=GSSGetDocument();
	if(typeof(vntObj)=='string'){
		if(vntObj!=''){
			var objForm=objDocument.forms[vntObj];
			if (typeof(objForm)=='object') return objForm;
		}
	}
	if(event.srcElement!=null){
		return GSSGetParentElementByTag(event.srcElement,'FORM');}
	else{
		if(typeof(vobjForm)=='string'){
			return objDocument.forms[vobjForm];}
		else{
			return objDocument.getElementsByTagName('FORM')[0];}
	}
}

//<!--******************************************************************************************-->
//函數名稱：GSSgetXmlDomDocumentPrefix
//目    的：取得可以Create XML Document物件的物件代號('MSXML2', 'Microsoft', 'MSXML', 'MSXML3')
//參數說明：無
//回傳值：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSgetXmlDomDocumentPrefix() {
	if (GSSgetXmlDomDocumentPrefix.prefix)
		return GSSgetXmlDomDocumentPrefix.prefix;

	var prefixes = ['MSXML2', 'Microsoft', 'MSXML', 'MSXML3'];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
			o = new ActiveXObject(prefixes[i] + '.DomDocument');
			return GSSgetXmlDomDocumentPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}

	throw new Error('Could not find an installed XML parser');
}

//<!--******************************************************************************************-->
//函數名稱：GSSloadXml
//目    的：執行XML Document物件的loadXML方法,並傳回該XML物件
//參數說明：vstrXml - XML字串
//回傳值：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSloadXml(vstrXml) {
	var xmlDoc = new ActiveXObject(GSSgetXmlDomDocumentPrefix() + '.DomDocument');

	xmlDoc.loadXML( '<?xml version=\"1.0\" encoding=\"utf-8\"?>' +
	'<root>' + vstrXml +
	'</root>');

	return xmlDoc;
}

function GSSgetXmlHttpPrefix() {
	if (GSSgetXmlHttpPrefix.prefix)
		return GSSgetXmlHttpPrefix.prefix;

	var prefixes = ['MSXML2', 'Microsoft', 'MSXML', 'MSXML3'];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
			o = new ActiveXObject(prefixes[i] + '.XmlHttp');
			return GSSgetXmlHttpPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}

	throw new Error('Could not find an installed XML parser');
}


function GSSXmlSubmit(vstrReq){
//var strReq;				variable to hold request string
	var root, source;		//A couple of XMLDOM objects (document and
	var sT;
	//Show a searching message
	status = 'searching, please wait....';
	//Create an xml document object, and load the server's response
	source = new ActiveXObject('Microsoft.XMLDOM');
	source.async = false;
	//Send the request string and read the result into the XMLDOM object

	source.load(vstrReq);

	//Check to see if there was an error parsing the response from the server
	if (source.parseError != 0){
		sT = 'XML Error...<br>reason:' + source.parseError.reason + '<br>';
		sT += 'errorCode:' + source.parseError.errorCode + '<br>';
		sT += 'filepos:' + source.parseError.filepos + '<br>';
		sT += 'line:' + source.parseError.line + '<br>';
		sT += 'linepos:' + source.parseError.linepos + '<br>';
		sT += 'reason:' + source.parseError.reason + '<br>';
		sT += 'srcText:' + source.parseError.srcText + '<br>';
		sT += '<pre>' + source.xml + '</pre><br>';
		alert(sT);
		status = 'XML Error!';}
	else {
		root = source.documentElement;		//Get a reference to root XML object
		status = 'Done';
		return root;}
}